// 用户相关API调用 - 与后端UserController接口保持一致

import request from '@/utils/request'
import type {
  UserLoginRequest,
  UserRegisterRequest,
  UserUpdateRequest,
  UserQueryRequest,
  DeleteRequest,
  LoginUserVO,
  UserVO,
  User
} from '@/types/user'

// 用户登录
export const userLogin = (data: UserLoginRequest) => {
  return request.post<LoginUserVO>('/api/user/login', data)
}

// 用户注册
export const userRegister = (data: UserRegisterRequest) => {
  return request.post<number>('/api/user/register', data)
}

// 用户注销
export const userLogout = () => {
  return request.post<boolean>('/api/user/logout')
}

// 获取当前登录用户
export const getLoginUser = () => {
  return request.get<LoginUserVO>('/api/user/get/login')
}

// 根据ID获取用户信息
export const getUserById = (id: number) => {
  return request.get<UserVO>(`/api/user/get/${id}`)
}

// 删除用户（管理员权限）
export const deleteUser = (data: DeleteRequest) => {
  return request.post<boolean>('/api/user/delete', data)
}

// 更新用户（管理员权限）
export const updateUser = (data: UserUpdateRequest) => {
  return request.post<boolean>('/api/user/update', data)
}

// 分页获取用户列表（管理员权限）
export const listUserByPage = (data: UserQueryRequest) => {
  return request.post<{ records: User[], total: number }>('/api/user/list/page', data)
}

// 分页获取用户封装列表
export const listUserVOByPage = (data: UserQueryRequest) => {
  return request.post<{ records: UserVO[], total: number }>('/api/user/list/page/vo', data)
} 